﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using VDataAdapter.EventManagement;

namespace VDataAdapter.QueueManagement
{
    public interface IEventProviderQueue
    {
        FirstTimeEvent GetFirstTimeEvent();
        MarketInfosEvent GetMarketInfosEvent();
        PtTopPricesChangedEvent GetPtTopPricesEvent();
        PtTransactionsChangedEvent GetPtTransactionsEvent();
        Top3PricesEvent GetTop3PricesEvent();
        TransactionsEvent GetTransactionsEvent();
    }

    public interface IEventStoteredQueue
    {
        void PutFirstTimeEvent(FirstTimeEvent eventItem);
        void PutMarketInfosEvent(MarketInfosEvent eventItem);
        void PutPtTopPricesEvent(PtTopPricesChangedEvent eventItem);
        void PutPtTransactionsEvent(PtTransactionsChangedEvent eventItem);
        void PutTop3PricesEvent(Top3PricesEvent eventItem);
        void PutTransactionsEvent(TransactionsEvent eventItem);
    }


    /// <summary>
    /// Provide insights about the event Queue
    /// </summary>
    public interface IEventQueue
    {
        int FirstTimeEventCount();
        int MarketInfosEventCount();
        int PtTopPricesEventCount();
        int PtTransactionsEventCount();
        int Top3PricesEventCount();
        int TransactionsEventCount();
    }
}
